from typing import TypedDict, List, Dict, Optional, Annotated,Any
from langgraph.graph import add_messages


class ParagraphState(TypedDict):
    messages: Annotated[list, add_messages]
    provider: str
    user_input: str
    domain: str
    audience: str
    paragraph_diagram: str
    paragraph_outline: str
    paragraph_content: str
    entity_type: List[str]  #创新主体类型，可以是领域、地区、机构、人、期刊等
    paragraph_data: Any     #撰写这个段落所需要的数据
    analytical_method: str  #计量分析方法，比如静态数据描述、趋势分析、网络分析、表格分析。
    chart_type: str         #图表类型，比如折线图、柱状图、饼图、网络图等


class ReportState(TypedDict):
    paragraphs: List[ParagraphState]
